package com.ljf.task.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.ljf.common.model.BasisModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import java.util.Date;

/**
 * 任务操作明细对象  task_dat_task_operate
 *
 * @author LJF
 * @since 2025-07-20
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("任务操作明细")
@TableName("task_dat_task_operate")
@EqualsAndHashCode(callSuper = true)
public class TaskDatTaskOperate extends BasisModel {

	private static final long serialVersionUID = 1L;

	/**
	 * Java类型: Long
	 * 数据库类型: bigint
	 * 注释: ID
	 * {@link TaskDatTaskOperate#COL_ID}
	 */
	@JsonProperty("id")
	@ApiModelProperty(value = "ID")
	@TableId(value="id", type= IdType.AUTO)
	private Long id;

	/**
	 * Java类型: String
	 * 数据库类型: char(13)
	 * 注释: 编码
	 * {@link TaskDatTaskOperate#COL_CODE}
	 */
	@TableField("code")
	@JsonProperty("code")
	@ApiModelProperty(value = "编码")
	private String code;

	/**
	 * Java类型: Integer
	 * 数据库类型: tinyint
	 * 注释: 明细类型(1:数据库处理;2:前端开发;3:后端开发)
	 * {@link TaskDatTaskOperate#COL_DETAIL_TYPE}
	 * {@link com.ljf.task.enums.TaskDatTaskDetailDetailTypeEnum}
	 */
	@TableField("detail_type")
	@JsonProperty("detailType")
	@ApiModelProperty(value = "明细类型")
	private Integer detailType;

	/**
	 * Java类型: Integer
	 * 数据库类型: smallint unsigned
	 * 注释: 排序
	 * {@link TaskDatTaskOperate#COL_SORT}
	 */
	@TableField("sort")
	@JsonProperty("sort")
	@ApiModelProperty(value = "排序")
	private Integer sort;

	/**
	 * Java类型: Integer
	 * 数据库类型: tinyint
	 * 注释: 操作类型(1:新增;2:修改;3:删除;4:待设计;5:设计暂存;6:设计中;7:设计完成;8:待开发;9:开发中;10:明细-待处理;11:明细-处理中;12:明细-已完成;13:开发完成;14:联调中;15:联调完成;16:待测试;17:测试中;18:测试完成;19:待发布;20:已完成;21:状态修改)
	 * {@link TaskDatTaskOperate#COL_OPERATION_TYPE}
	 * {@link com.ljf.task.enums.TaskDatTaskOperateOperationTypeEnum}
	 */
	@TableField("operation_type")
	@JsonProperty("operationType")
	@ApiModelProperty(value = "操作类型")
	private Integer operationType;

	/**
	 * Java类型: Date
	 * 数据库类型: datetime
	 * 注释: 操作时间
	 * {@link TaskDatTaskOperate#COL_OPERATION_TIME}
	 */
	@TableField("operation_time")
	@JsonProperty("operationTime")
	@ApiModelProperty(value = "操作时间")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date operationTime;


	/**
	 * ID
	 * {@link TaskDatTaskOperate#id}
	 */
	public static final String COL_ID = "id";
	/**
	 * 编码
	 * {@link TaskDatTaskOperate#code}
	 */
	public static final String COL_CODE = "code";
	/**
	 * 明细类型(1:数据库处理;2:前端开发;3:后端开发)
	 * {@link TaskDatTaskOperate#detailType}
	 */
	public static final String COL_DETAIL_TYPE = "detail_type";
	/**
	 * 排序
	 * {@link TaskDatTaskOperate#sort}
	 */
	public static final String COL_SORT = "sort";
	/**
	 * 操作类型(1:新增;2:修改;3:删除;4:待设计;5:设计暂存;6:设计中;7:设计完成;8:待开发;9:开发中;10:明细-待处理;11:明细-处理中;12:明细-已完成;13:开发完成;14:联调中;15:联调完成;16:待测试;17:测试中;18:测试完成;19:待发布;20:已完成;21:状态修改)
	 * {@link TaskDatTaskOperate#operationType}
	 */
	public static final String COL_OPERATION_TYPE = "operation_type";
	/**
	 * 操作时间
	 * {@link TaskDatTaskOperate#operationTime}
	 */
	public static final String COL_OPERATION_TIME = "operation_time";

}
